111 research outputs found

    On the mechanical derivation of loop invariants

    Get PDF
    We describe an iterative algorithm for mechanically deriving loop invariants for the purpose of proving the partial correctness of programs. The algorithm is based on resolution and a novel unskolemization technique for deriving logical consequences of first-order formulas. Our method is complete in the sense that if a loop invariant exists for a loop in a given first-order language relative to a given finite set of first-order axioms, then the algorithm produces a loop invariant for that loop which can be used for proving the partial correctness of the program. Existing techniques in the literature are not complete

    Termination orderings for associative-commutative rewriting systems

    Get PDF
    In this paper we describe a new class of orderings—associative path orderings—for proving termination of associative-commutative term rewriting systems .These orderings are based on the concept of simplification orderings and extend the well-known recursive path orderings to E - congruence classes, where E is an equational theory consisting of associativity and commutativity axioms. Associative path orderings are applicable to term rewriting systems for which a precedence ordering on the set of operator symbols can be defined that satisfies a certain condition,the associative path condition. The precedence ordering can often be derived from the structure of the reduction rules. We include termination proofs for various term rewriting systems (for rings,boolean algebra,etc.) and, in addition, point out ways to handle situations where the associative path condition is too restrictive

    A Structure-preserving Clause Form Translation

    Get PDF
    Most resolution theorem provers convert a theorem into clause form before attempting to find a proof. The conventional translation of a first-order formula into clause form often obscures the structure of the formula, and may increase the length of the formula by an exponential amount in the worst case. We present a non-standard clause form translation that preserves more of the structure of the formula than the conventional translation. This new translation also avoids the exponential increase in size which may occur with the standard translation. We show how this idea may be combined with the idea of replacing predicates by their definitions before converting to clause form. We give a method of lock resolution which is appropriate for the non-standard clause form translation, and which has yielded a spectacular reduction in search space and time for one example. These techniques should increase the attractiveness of resolution theorem provers for program verification applications, since the theorems that arise in program verification are often simple but tedious for humans to prove

    A satisfiability procedure for quantified Boolean formulae

    Get PDF
    We present a satisfiability tester QSAT for quantified Boolean formulae and a restriction of QSAT to unquantified conjunctive normal form formulae. QSAT makes use of procedures which replace subformulae of a formula by equivalent formulae. By a sequence of such replacements, the original formula can be simplified to or . It may also be necessary to transform the original formula to generate a subformula to replace. eliminates collections of variables from an unquantified clause form formula until all variables have been eliminated. QSAT and can be applied to hardware verification and symbolic model checking. Results of an implementation of are described, as well as some complexity results for QSAT and . QSAT runs in linear time on a class of quantified Boolean formulae related to symbolic model checking. We present the class of “long and thin” unquantified formulae and give evidence that this class is common in applications. We also give theoretical and empirical evidence that is often faster than Davis and Putnam-type satisfiability checkers and ordered binary decision diagrams (OBDDs) on this class of formulae. We give an example where is exponentially faster than BDDs
    • …
    corecore